iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 22
0
DevOps

持續測試三十天系列 第 22

[Day 22] TestCafe With Data-Driven Test

  • 分享至 

  • xImage
  •  

測試資料的準備,是自動化測試體系中一個很重要的議題。
有規劃可控管的測試資料帶你上天堂,沒控管的測試資料會帶你下地獄。

持續測試三十天這個系列,筆者偏重於測試框架和平台的介紹,
篇幅有限,關於測試資料生命週期的部分,以後有機會再另開專欄來討論。

但今天這篇文章,筆者還是必須來討論一下,資料驅動測試 (Data-Driven Test) 這個主題!
也來實際使用 TestCafe Data-Driven Test,來實現資料驅動測試。

https://ithelp.ithome.com.tw/upload/images/20191008/20120775qJpj0DbNcM.png

  1. Data File:可能是本地端檔案或外部資料源,應該要包含測試過程所需要的資料和預期結果
  2. Data Driven Script:根據 步驟 1 傳入的測試資料執行自動化測試。
  3. 比較 Data File 的 預期結果步驟 2 的實際結果,判定自動化測試是否正確。

在寫自動化測試的 Code 時,要適當地將程式碼抽象化,從資料面向出發,以資料去驅動自動化測試。
這個環節如果有做好,對於未來測試資料的規劃和控管,會有很大的幫助。

TestCafe With Data-Driven Test

Yes

day22 的 Code,我們有一個測試案例集,裡面有一個透過 Data-Driven 的測試案例

TestCafeExamplePage.js
└── data.json
└── fixture 測試案例集
    └── Example Page Test 1

TestCafe 的資料驅動測試非常簡單,在 data.json 裡,定義測試資料預期結果
然後 dataSet.forEach 整個測試流程 test(),會被視為執行了多個測試案例。

day14 比較 day22 的 Code 也經過適當改寫,
將測試過程中所需完成的動作都透過 data.json 中的資料驅動。

import { Selector } from "testcafe";
const dataSet = require("./data.json");

fixture`測試案例集`.page`http://devexpress.github.io/testcafe/example`; 

dataSet.forEach(data => {
  const { name, feature, os, interfaceOption, resultText } = data;

  test(`Example Page Test Name = ${name}`, async t => {
    ...
  });
});

筆者在 data.json 裡建立了兩筆測試資料,

[
  {
    "name": "ice1",
    "feature": "Support for testing on remote devices",
    "os": "MacOS",
    "interfaceOption": "JavaScript API",
    "resultText": "Thank you, ice1!"
  },
  {
    "name": "ice2",
    "feature": "Advanced traffic and markup analysis",
    "os": "Linux",
    "interfaceOption": "Both",
    "resultText": "Thank you, ice!"
  }
]
cd day22

testcafe chrome TestCafeExamplePage.js

實際執行結果,因為有兩筆測試資料,test() 被執行兩次,視為兩個測試案例。
https://ithelp.ithome.com.tw/upload/images/20191008/20120775eG1ADK1htV.png


上一篇
[Day 21] TestCafe 的一些 debug 手段
下一篇
[Day 23] TestCafe With Docker
系列文
持續測試三十天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言